Batch Script-এ লুপিং (Looping) হল এমন একটি প্রক্রিয়া যা আপনাকে একাধিকবার একটি নির্দিষ্ট ব্লক কোড চালানোর সুবিধা দেয়। এটি বিশেষভাবে দরকারি যখন আপনার একাধিক আইটেমের উপর অপারেশন করতে হয় বা একই কাজ একাধিক বার করতে হয়। Batch Script-এ লুপিংয়ের জন্য প্রধানত FOR লুপ ব্যবহৃত হয়। এখানে আমরা Batch Script-এ লুপিংয়ের বিভিন্ন কৌশল ও উদাহরণ আলোচনা করব।
FOR লুপ
FOR লুপ Batch Script-এ সবচেয়ে সাধারণভাবে ব্যবহৃত হয়। এটি আপনাকে একটি নির্দিষ্ট পরিমাণ বা শর্তসাপেক্ষে কোড ব্লক একাধিক বার চালাতে দেয়।
সাধারণ FOR লুপ ব্যবহার
নিচের উদাহরণটি একটি সাধারণ FOR লুপ যা একটি সিকোয়েন্সের প্রতিটি আইটেমের উপর কাজ করবে।
FOR %%i IN (1 2 3 4 5) DO echo %%i
এখানে FOR লুপ 1 থেকে 5 পর্যন্ত প্রতিটি সংখ্যা নিয়ে echo কমান্ড চালাবে। আউটপুট হবে:
1
2
3
4
5
এখানে %%i হচ্ছে লুপের প্রতিটি ইটারেশন এর জন্য একটি ভেরিয়েবল, এবং (1 2 3 4 5) হচ্ছে লুপে ব্যবহার করা আইটেমগুলি।
FOR /L লুপ
FOR /L লুপটি ব্যবহার করা হয় যখন আপনি নির্দিষ্ট একটি সংখ্যা থেকে অন্য একটি সংখ্যার মধ্যে লুপ চালাতে চান। এটি গননা অনুযায়ী চলবে।
উদাহরণ:
FOR /L %%i IN (1,1,5) DO echo %%i
এখানে FOR /L %%i IN (1,1,5) এর মানে হল যে %%i 1 থেকে শুরু হবে, 1 প্রতি বাড়বে, এবং 5 পর্যন্ত যাবে। আউটপুট হবে:
1
2
3
4
5
এখানে প্রথম সংখ্যা (1) হলো স্টার্টিং পয়েন্ট, দ্বিতীয় সংখ্যা (1) হলো ইনক্রিমেন্ট ভ্যালু, এবং তৃতীয় সংখ্যা (5) হলো এন্ড পয়েন্ট।
FOR /F লুপ
FOR /F লুপটি ফাইল বা স্ট্রিং থেকে ডেটা প্রক্রিয়া করার জন্য ব্যবহৃত হয়। এটি একটি ফাইলের প্রতিটি লাইন বা স্ট্রিংয়ের প্রতিটি শব্দের উপর কাজ করতে পারে।
ফাইল থেকে লাইন পড়ার উদাহরণ:
FOR /F "tokens=*" %%i IN (myfile.txt) DO echo %%i
এখানে FOR /F লুপটি myfile.txt ফাইলের প্রতিটি লাইনকে পড়বে এবং echo কমান্ডের মাধ্যমে সেটি প্রদর্শন করবে।
স্ট্রিং থেকে শব্দ পড়ার উদাহরণ:
SET text=apple orange banana
FOR /F "tokens=1,2,3" %%i IN ("%text%") DO echo %%i
এখানে FOR /F লুপটি স্ট্রিং apple orange banana থেকে প্রতিটি শব্দ আলাদা করবে এবং একে একে %%i এর মাধ্যমে প্রদর্শন করবে।
আউটপুট হবে:
apple
orange
banana
ফাইল এবং ডিরেক্টরির সাথে লুপ
FOR লুপ ব্যবহার করে আপনি ডিরেক্টরি বা ফাইলগুলির সাথে কাজ করতে পারেন। উদাহরণস্বরূপ, একটি নির্দিষ্ট ফোল্ডারে থাকা সমস্ত ফাইলের উপর লুপ চালানোর জন্য আপনি FOR লুপ ব্যবহার করতে পারেন।
ফোল্ডার থেকে ফাইল লিস্ট করা:
FOR %%f IN (*.txt) DO echo %%f
এখানে এই কমান্ডটি বর্তমান ডিরেক্টরির সকল .txt ফাইলের নাম প্রদর্শন করবে।
Nested Loops (নেস্টেড লুপ)
নেস্টেড লুপ হল এক লুপের ভিতরে আরেকটি লুপ ব্যবহার করা। যখন আপনাকে একাধিক পর্যায়ে ডেটা প্রক্রিয়া করতে হয় তখন নেস্টেড লুপ খুব কার্যকরী হতে পারে।
নেস্টেড FOR লুপ উদাহরণ:
FOR %%i IN (1 2 3) DO (
FOR %%j IN (A B C) DO (
echo %%i %%j
)
)
এখানে বাইরের FOR %%i লুপটি 1, 2, এবং 3 পর্যন্ত যাবে, এবং প্রতিটি %%i এর জন্য ভিতরের FOR %%j লুপটি A, B, এবং C পর্যন্ত যাবে। আউটপুট হবে:
1 A
1 B
1 C
2 A
2 B
2 C
3 A
3 B
3 C
লুপে নির্দিষ্ট শর্ত যোগ করা
Batch Script-এ আপনি লুপের ভিতরে শর্তসাপেক্ষে (conditional) কোনো কিছু করতে পারেন। এটি IF স্টেটমেন্টের মাধ্যমে করা যেতে পারে।
উদাহরণ:
FOR %%i IN (1 2 3 4 5) DO (
IF %%i LSS 3 (
echo %%i is less than 3
) ELSE (
echo %%i is greater than or equal to 3
)
)
এখানে LSS হল একটি কম্প্যারেটর যা "less than" অর্থাৎ "ছোট" পরীক্ষা করে। আউটপুট হবে:
1 is less than 3
2 is less than 3
3 is greater than or equal to 3
4 is greater than or equal to 3
5 is greater than or equal to 3
লুপের মধ্যে GOTO ব্যবহার
কিছু ক্ষেত্রে, আপনি লুপের মধ্যে নির্দিষ্ট অবস্থায় চলে যাওয়ার জন্য GOTO কমান্ড ব্যবহার করতে পারেন।
উদাহরণ:
FOR %%i IN (1 2 3 4 5) DO (
IF %%i==3 GOTO EndLoop
echo %%i
)
:EndLoop
echo Loop Ended
এখানে %%i যখন 3 হয়, তখন লুপটি GOTO EndLoop দ্বারা শেষ হয়ে যাবে এবং "Loop Ended" প্রদর্শিত হবে।
সারাংশ
Batch Script-এ লুপিং কৌশলগুলি অটোমেশন এবং স্ক্রিপ্টিং কাজকে আরো সহজ এবং শক্তিশালী করে তোলে। FOR, FOR /L, এবং FOR /F লুপগুলি বিভিন্ন ধরণের কাজের জন্য উপযুক্ত, যেমন সংখ্যা গণনা, ফাইল প্রসেসিং এবং স্ট্রিং বিশ্লেষণ। নেস্টেড লুপ এবং শর্তসাপেক্ষ লুপগুলো আরো জটিল প্রক্রিয়া সম্পাদন করতে সহায়ক, এবং GOTO কমান্ডের মাধ্যমে লুপের প্রবাহ নিয়ন্ত্রণ করা সম্ভব।
Batch Script এ FOR Loop একটি খুবই গুরুত্বপূর্ণ কনস্ট্রাক্ট, যা ব্যবহার করে আপনি একটি নির্দিষ্ট কাজ বা কার্যক্রম একাধিক বার পুনরাবৃত্তি করতে পারেন। এটি একটি টাইপের লুপ যেটি নির্দিষ্ট সংখ্যক বা শর্তসাপেক্ষ বারের জন্য কোড চালায়। Batch Script এ FOR Loop ব্যবহার করে ফাইলস, ডিরেক্টরিজ, কিংবা ভেরিয়েবলগুলির মান অনুযায়ী কাজ করা যায়।
FOR Loop এর মৌলিক গঠন
Batch Script এ FOR Loop এর মৌলিক গঠন কিছুটা এইরকম:
FOR %%variable IN (set) DO command
%%variable: এটি লুপের চলমান মান যা প্রতি ইটারেশনে পরিবর্তিত হবে।(set): এটি এমন একটি সেট (যেমন ফাইল নাম বা সংখ্যা) যা লুপের মধ্যে প্রতিবার প্রক্রিয়াকৃত হবে।DO command: এটি সেই কমান্ড যা প্রতি লুপ ইটারেশনে এক্সিকিউট হবে।
উদাহরণ ১: সংখ্যা থেকে ১ পর্যন্ত গননা করা
FOR %%i IN (1 2 3 4 5) DO echo %%i
এই স্ক্রিপ্টটি ১ থেকে ৫ পর্যন্ত সংখ্যাগুলি একে একে আউটপুট করবে।
উদাহরণ ২: একটি রেঞ্জের মধ্যে গননা করা
আপনি FOR লুপের মধ্যে একটি রেঞ্জ ডিফাইন করতে পারেন। উদাহরণস্বরূপ:
FOR /L %%i IN (1,1,5) DO echo %%i
এখানে, /L অপশনটি ব্যবহার করা হয়েছে, যার মানে হচ্ছে লুপটি একটি নির্দিষ্ট রেঞ্জের মধ্যে চলবে। এখানে লুপটি ১ থেকে ৫ পর্যন্ত ইটারেট করবে, যেখানে 1 হল প্রথম মান, 1 হল স্টেপ বা ইনক্রিমেন্ট এবং 5 হল শেষ মান।
FOR Loop এর সাথে ডিরেক্টরি ফাইলসের উপর কাজ করা
Batch Script এ আপনি FOR লুপ ব্যবহার করে ডিরেক্টরিতে থাকা সব ফাইলের উপর কাজ করতে পারেন। উদাহরণস্বরূপ, একটি ডিরেক্টরির সব ফাইলের নাম প্রদর্শন করতে:
FOR %%f IN (*.*) DO echo %%f
এখানে *.* এর মাধ্যমে বর্তমান ডিরেক্টরির সব ফাইলের উপর কাজ করা হবে এবং %%f দ্বারা তাদের নাম আউটপুট হবে।
উদাহরণ ৩: ফোল্ডারের ফাইল কপি করা
FOR %%f IN (C:\Source\*) DO copy %%f C:\Destination\
এই স্ক্রিপ্টটি C:\Source\ ফোল্ডারের সমস্ত ফাইল কপি করে C:\Destination\ ফোল্ডারে।
উদাহরণ ৪: ফাইলের মধ্যে লাইন দ্বারা লুপ করা
আপনি FOR লুপ ব্যবহার করে কোনো টেক্সট ফাইলের প্রতিটি লাইন পড়তে পারেন। উদাহরণস্বরূপ:
FOR /F "tokens=*" %%a IN (example.txt) DO echo %%a
এখানে /F অপশনটি ফাইলের প্রতিটি লাইনকে %%a ভেরিয়েবলের মাধ্যমে প্রক্রিয়া করে আউটপুট করবে।
FOR Loop এর আরও বিকল্প
Batch Script এ FOR লুপের আরও কিছু অপশন রয়েছে যেগুলি বিভিন্ন পরিস্থিতিতে ব্যবহৃত হয়:
- FOR /L: একটি নির্দিষ্ট রেঞ্জের মধ্যে সংখ্যার লুপ চালায়। (যেমন, ১ থেকে ১০ পর্যন্ত)
- FOR /F: ফাইল বা স্ট্রিং ডেটা প্রক্রিয়া করার জন্য ব্যবহৃত হয়।
- FOR /D: ডিরেক্টরি ফোল্ডারগুলোর উপর কাজ করতে ব্যবহৃত হয়।
- FOR /R: সাবডিরেক্টরি সহ একটি ডিরেক্টরির সমস্ত ফাইলের উপর কাজ করতে ব্যবহৃত হয়।
উদাহরণ ৫: সাবডিরেক্টরির ফাইলের উপর লুপ চালানো
FOR /R %%f IN (*.txt) DO echo %%f
এখানে /R অপশনটি ব্যবহার করে সাবডিরেক্টরি গুলির ভিতরেও .txt এক্সটেনশনের ফাইলগুলির উপর কাজ করা হয়েছে।
সারাংশ
Batch Script এ FOR Loop একটি অত্যন্ত শক্তিশালী টুল, যা আপনি ব্যবহার করে ফাইল, ডিরেক্টরি, সংখ্যার রেঞ্জ বা এমনকি ফাইলের লাইন দ্বারা কাজ করতে পারেন। এর মাধ্যমে আপনি কোডের পুনরাবৃত্তি ঘটাতে পারেন এবং বিভিন্ন ধরনের ডাটা প্রক্রিয়া করতে পারেন। ফর লুপের বিভিন্ন অপশন, যেমন /L, /F, /D, /R ইত্যাদি, Batch Script কে আরও শক্তিশালী এবং ফ্লেক্সিবল করে তোলে।
FOR লুপ একটি ব্যাচ স্ক্রিপ্টের একটি গুরুত্বপূর্ণ উপাদান যা বিভিন্ন কাজ পুনরাবৃত্তি করতে ব্যবহার করা হয়। Windows Batch Script এ দুটি বিশেষ ধরনের FOR লুপ রয়েছে: FOR /L এবং FOR /F। এই দুটি লুপের মাধ্যমে আপনি তালিকা তৈরি, ফাইল প্রক্রিয়াকরণ এবং কাস্টম অ্যাকশন পুনরাবৃত্তি করতে পারেন।
FOR /L লুপ
FOR /L লুপটি মূলত একটি সংখ্যা সীমা দিয়ে নির্দিষ্ট সংখ্যক পুনরাবৃত্তি করে। এটি গাণিতিক ক্রম তৈরি করতে ব্যবহৃত হয়। এই লুপটি সাধারণত একটি স্টার্টিং ভ্যালু, একটি ইনক্রিমেন্ট এবং একটি এন্ডিং ভ্যালু নেয়।
সিনট্যাক্স:
FOR /L %%variable IN (start,step,end) DO command
- start: লুপ শুরু হবে কোন মান থেকে।
- step: প্রতি পুনরাবৃত্তিতে কতটা বৃদ্ধি পাবে।
- end: লুপ কখন থামবে।
উদাহরণ:
যদি আপনি 1 থেকে 10 পর্যন্ত সংখ্যাগুলি প্রিন্ট করতে চান:
@echo off
FOR /L %%i IN (1,1,10) DO echo %%i
এটি 1 থেকে 10 পর্যন্ত একে একে প্রতিটি সংখ্যা আউটপুট করবে।
ব্যাখ্যা:
- 1 হলো স্টার্টিং ভ্যালু।
- 1 হলো স্টেপ বা বৃদ্ধি (একটি একক করে বাড়বে)।
- 10 হলো এন্ডিং ভ্যালু।
FOR /F লুপ
FOR /F লুপটি সাধারণত ফাইল, স্ট্রিং বা আউটপুট থেকে তথ্য বের করে নিয়ে কাজ করার জন্য ব্যবহৃত হয়। এই লুপটি ইনপুট থেকে এক বা একাধিক লাইনের মাধ্যমে কাজ করতে পারে। এটি এমনকি কমান্ড আউটপুট থেকেও ডেটা নিতে পারে।
সিনট্যাক্স:
FOR /F "options" %%variable IN (file) DO command
এখানে, options দিয়ে আপনি ইনপুটের পার্সিং নির্দেশনা দিতে পারেন (যেমন ডেলিমিটার সেট করা), এবং file একটি ফাইল বা কমান্ড আউটপুট হতে পারে।
উদাহরণ 1: ফাইলের প্রতিটি লাইন পড়া
@echo off
FOR /F "tokens=*" %%i IN (data.txt) DO echo %%i
এটি data.txt ফাইলের প্রতিটি লাইন পড়বে এবং তা স্ক্রিনে প্রদর্শন করবে।
উদাহরণ 2: কমান্ড আউটপুট থেকে তথ্য সংগ্রহ
@echo off
FOR /F "tokens=2 delims= " %%i IN ('ipconfig') DO echo %%i
এটি ipconfig কমান্ডের আউটপুট থেকে দ্বিতীয় টোকেন (যেমন IP ঠিকানা) নিয়ে এসে স্ক্রিনে প্রদর্শন করবে।
ব্যাখ্যা:
"tokens=2 delims= "নির্দেশনা দেয় যে, প্রথম টোকেনের পরে স্পেস (space) ডেলিমিটার হিসেবে কাজ করবে, এবং দ্বিতীয় টোকেনটি নির্বাচন করা হবে।ipconfigকমান্ডের আউটপুট থেকে প্রথম স্পেসের পরে যে তথ্য আসবে তা আউটপুট হবে।
FOR /F এর সাথে আরও কিছু অপশন:
- tokens=: কিভাবে আউটপুটকে ভাগ করা হবে (যেমন, 1st, 2nd, 3rd টোকেন)।
- delims=: কী কী চিহ্ন বা ক্যারেক্টার ডেলিমিটার হিসেবে কাজ করবে (যেমন স্পেস, কমা ইত্যাদি)।
উদাহরণ 3: Delimiter ব্যবহার করে তথ্য প্রসেস করা
@echo off
FOR /F "tokens=1,2 delims=," %%a,%%b IN (file.csv) DO echo %%a %%b
এটি file.csv ফাইলের প্রতিটি লাইনে কমা দ্বারা বিভক্ত দুটি টোকেন গ্রহণ করে এবং সেগুলিকে আউটপুট করবে।
সারাংশ
- FOR /L লুপটি সংখ্যা ভিত্তিক পুনরাবৃত্তি এবং গাণিতিক ক্রমের জন্য ব্যবহৃত হয়, যেমন 1 থেকে 10 পর্যন্ত গুন করা।
- FOR /F লুপটি ফাইল, স্ট্রিং অথবা কমান্ড আউটপুট থেকে ডেটা প্রসেস করার জন্য ব্যবহৃত হয় এবং এটি ডেলিমিটার নির্ধারণ করে টোকেনগুলো আলাদা করে কাজ করতে সাহায্য করে।
এই লুপগুলো Batch Script এর অত্যন্ত শক্তিশালী টুল, যা পুনরাবৃত্তিমূলক কাজগুলিকে সহজ এবং দ্রুত সম্পন্ন করতে সহায়তা করে।
Batch Script-এ loop ব্যবহার করে আপনি ফাইল এবং ডিরেক্টরি গুলোর উপর একাধিক অপারেশন চালাতে পারেন। যখন আপনি একটি ডিরেক্টরির সমস্ত ফাইলের সাথে কাজ করতে চান, অথবা বিভিন্ন ফাইলের উপর কোনো নির্দিষ্ট কাজ করতে চান, তখন for লুপটি খুবই কার্যকরী। এটি আপনাকে স্বয়ংক্রিয়ভাবে একাধিক ফাইল বা ডিরেক্টরি প্রসেস করতে সাহায্য করে।
for Loop এর ব্যবহার
for লুপের মাধ্যমে আপনি একটি নির্দিষ্ট ডিরেক্টরির সমস্ত ফাইল বা সাব-ডিরেক্টরি সম্পর্কে তথ্য পেতে পারেন এবং তাদের উপর অপারেশন করতে পারেন। এখানে কয়েকটি সাধারণ উদাহরণ দেওয়া হলো:
ফাইলের মধ্যে লুপ চালানো
for লুপ ব্যবহার করে একটি ডিরেক্টরির মধ্যে থাকা সব ফাইলের উপর কাজ করতে পারেন।
উদাহরণ ১: ডিরেক্টরির সব ফাইলের নাম দেখানো
@echo off
for %%F in (C:\path\to\folder\*) do (
echo %%F
)
pause
এখানে %%F হলো প্রতিটি ফাইলের রেফারেন্স যা লুপের মধ্যে প্রতিটি ফাইলের জন্য এক এক করে ইটারেট হবে। আপনি এখানে যেকোনো ডিরেক্টরির পাথ (যেমন C:\path\to\folder\) নির্দিষ্ট করতে পারেন।
উদাহরণ ২: একটি নির্দিষ্ট এক্সটেনশনের ফাইলের উপর কাজ করা
এটি সব .txt ফাইলের নাম দেখানোর উদাহরণ:
@echo off
for %%F in (C:\path\to\folder\*.txt) do (
echo %%F
)
pause
এখানে *.txt দিয়ে শুধু .txt এক্সটেনশনের ফাইলগুলোকে চিহ্নিত করা হয়েছে।
উদাহরণ ৩: ফাইলের উপর কিছু কাজ করা
যেমন, আপনি প্রতিটি .txt ফাইলের সাথে কিছু কাজ করতে চান। নিচে একটি উদাহরণ দেওয়া হলো যেখানে প্রতিটি .txt ফাইলের একটি কপি তৈরি করা হচ্ছে:
@echo off
for %%F in (C:\path\to\folder\*.txt) do (
copy "%%F" "C:\path\to\destination\"
)
pause
এখানে %%F প্রতিটি .txt ফাইলের পাথকে রেফারেন্স করছে এবং copy কমান্ডের মাধ্যমে সেগুলি নতুন ডিরেক্টরিতে কপি হচ্ছে।
ডিরেক্টরির মধ্যে লুপ চালানো
for লুপের মাধ্যমে আপনি শুধু ফাইলই না, বরং ডিরেক্টরি নিয়েও কাজ করতে পারেন।
উদাহরণ ৪: ডিরেক্টরির নাম দেখানো
@echo off
for /d %%D in (C:\path\to\folder\*) do (
echo %%D
)
pause
এখানে /d স্যুইচটি ব্যবহার করে শুধুমাত্র ডিরেক্টরির নাম গুলি তালিকাভুক্ত হচ্ছে।
উদাহরণ ৫: সাব-ডিরেক্টরির মধ্যে লুপ চালানো
যদি আপনি কোনো ডিরেক্টরি এবং তার সব সাব-ডিরেক্টরির ফাইলের উপর কাজ করতে চান, তবে /r স্যুইচটি ব্যবহার করতে পারেন:
@echo off
for /r C:\path\to\folder %%F in (*.txt) do (
echo %%F
)
pause
এখানে /r স্যুইচটি ব্যবহার করা হয়েছে যাতে এটা রিকার্সিভভাবে সব সাব-ডিরেক্টরিতে গিয়ে .txt ফাইলগুলো খুঁজে বের করে এবং তাদের নাম প্রদর্শন করে।
ফাইলের নাম থেকে কিছু অংশ বের করা
আপনি যদি ফাইলের নাম থেকে কিছু অংশ বের করতে চান, তাহলে ~ ব্যবহার করতে পারেন।
উদাহরণ ৬: ফাইলের এক্সটেনশন বাদ দিয়ে নাম দেখানো
@echo off
for %%F in (C:\path\to\folder\*.txt) do (
echo %%~nF
)
pause
এখানে %%~nF শুধুমাত্র ফাইলের নাম দেখাবে, এক্সটেনশন বাদ দিয়ে।
উদাহরণ ৭: ফাইলের পাথ, নাম এবং এক্সটেনশন দেখা
@echo off
for %%F in (C:\path\to\folder\*.txt) do (
echo Full path: %%F
echo File name: %%~nxF
echo Directory: %%~dpF
)
pause
এখানে:
%%~nFফাইলের নাম দেখাবে%%~xFফাইলের এক্সটেনশন দেখাবে%%~dpFফাইলের ডিরেক্টরি পাথ দেখাবে
সারাংশ
for loop Batch Script-এ ফাইল এবং ডিরেক্টরির সাথে কাজ করার একটি অত্যন্ত কার্যকরী টুল। আপনি এটি ব্যবহার করে ডিরেক্টরি ও ফাইলগুলির উপর একাধিক অপারেশন চালাতে পারেন, যেমন ফাইল কপি করা, নাম পরিবর্তন করা, বা কোনো নির্দিষ্ট কাজ করা। এছাড়াও, আপনি রিকার্সিভভাবে সাব-ডিরেক্টরিগুলোর উপরও কাজ করতে পারেন। for লুপের মাধ্যমে ফাইলের নাম, এক্সটেনশন, পাথ, এবং অন্যান্য বৈশিষ্ট্য নিয়ে কাজ করা খুবই সহজ এবং এটি Batch Script-এর অন্যতম গুরুত্বপূর্ণ ফিচার।
Batch Script-এ Nested Loops ব্যবহার করা হয় যখন আপনি একটি লুপের মধ্যে আরেকটি লুপ চালাতে চান। এটি বেশ কার্যকরী হতে পারে যখন আপনি একাধিক স্তরের লুপ তৈরি করতে চান, যেমন একটি লুপের মধ্যে আরও একাধিক লুপ। এই পদ্ধতিতে, আপনি বাইরের লুপে একটি আউটপুট প্রক্রিয়া করতে পারেন এবং ভিতরের লুপের মাধ্যমে প্রতিটি আউটপুটের জন্য আরও বিস্তারিত কাজ করতে পারেন।
Nested Loops কী?
Nested Loops বলতে বুঝানো হয় এমন একটি লুপ যেখানে এক লুপের মধ্যে অন্য লুপ থাকে। Batch Script-এ, আপনি সাধারণত FOR লুপ ব্যবহার করে এটি করতে পারেন। ভিতরের লুপটি বাইরের লুপের প্রতিটি পুনরাবৃত্তির জন্য একবার করে চালানো হয়।
Nested Loops-এর গঠন:
FOR %%i IN (range) DO (
FOR %%j IN (range) DO (
REM your commands here
)
)
এখানে:
- বাইরের FOR লুপটি চলবে %%i (বা অন্য কোনো ভেরিয়েবল) এর মান নিয়ে।
- ভিতরের FOR লুপটি চলবে %%j (বা অন্য কোনো ভেরিয়েবল) এর মান নিয়ে।
- প্রতিটি বাইরের লুপের জন্য, ভিতরের লুপটি সম্পূর্ণভাবে চলবে।
উদাহরণ:
ধরা যাক, আপনি একটি ২-ডাইমেনশনাল গ্রিড তৈরি করতে চান, যেখানে বাইরের লুপটি এক সারির জন্য কাজ করবে এবং ভিতরের লুপটি প্রতি সারিতে কলামগুলোর জন্য কাজ করবে।
@echo off
FOR %%i IN (1 2 3) DO (
FOR %%j IN (A B C) DO (
echo %%i %%j
)
)
pause
এখানে:
- বাইরের FOR %%i লুপটি 1, 2, 3 সংখ্যার জন্য চলে।
- ভিতরের FOR %%j লুপটি A, B, C অক্ষরের জন্য চলে।
- প্রতিটি বাইরের লুপের জন্য, ভিতরের লুপটি পুরোপুরি চলে এবং এই ভাবে একে একে সমস্ত 1 A, 1 B, 1 C, 2 A, 2 B, 2 C, এবং 3 A, 3 B, 3 C প্রদর্শিত হবে।
আউটপুট:
1 A
1 B
1 C
2 A
2 B
2 C
3 A
3 B
3 C
আরও একটি উদাহরণ:
ধরা যাক, আপনি একটি টেবিলের মতো ১ থেকে ৩ পর্যন্ত সংখ্যার জন্য একটি গ্রিড তৈরি করতে চান, যেখানে বাইরের লুপটি রো এবং ভিতরের লুপটি কলাম তৈরি করবে।
@echo off
FOR %%i IN (1 2 3) DO (
FOR %%j IN (1 2 3) DO (
echo %%i %%j
)
)
pause
এখানে, বাইরের লুপটি প্রথমে 1 নেবে, তারপর 2 এবং শেষে 3 নেবে, এবং প্রতিটি বাইরের লুপের জন্য ভিতরের লুপটি ১, ২, ৩ মান নিয়ে চলবে।
Nested Loops ব্যবহার করে 2D Array Simulation:
Batch Script-এ সঠিক 2D Array নেই, তবে Nested Loops ব্যবহার করে আপনি 2D Array সিমুলেট করতে পারেন। উদাহরণস্বরূপ:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set count=1
FOR %%i IN (1 2 3) DO (
FOR %%j IN (1 2 3) DO (
set result[!count!]=Row %%i, Column %%j
set /a count+=1
)
)
:: Displaying the values
FOR /L %%k IN (1,1,9) DO (
echo !result[%%k]!
)
pause
এখানে:
- প্রথমে একটি count ভেরিয়েবল তৈরি করা হয়েছে, যা 2D array-এর জন্য ইনডেক্স হিসাবে কাজ করবে।
- বাইরের এবং ভিতরের FOR লুপের মাধ্যমে গ্রিডের সবগুলো সেল সিমুলেট করা হয়েছে।
- শেষে, এক এক করে সবগুলো সেল echo করা হয়েছে।
আউটপুট:
Row 1, Column 1
Row 1, Column 2
Row 1, Column 3
Row 2, Column 1
Row 2, Column 2
Row 2, Column 3
Row 3, Column 1
Row 3, Column 2
Row 3, Column 3
Nested Loops এর ব্যবহারিক দৃষ্টান্ত:
Nested Loops বেশ কার্যকরী হতে পারে কিছু ব্যবহারিক ক্ষেত্রে, যেমন:
- ডেটা ম্যানিপুলেশন: যখন আপনি একটি ফাইলের প্রতিটি লাইনের জন্য আরেকটি ফাইলের প্রতিটি লাইনের সাথে তুলনা করতে চান।
- ফাইল প্রসেসিং: একাধিক ডিরেক্টরির মধ্যে ফাইল খুঁজে বের করা এবং প্রসেস করা।
- সার্চিং বা ফিল্টারিং: একটি বড় ডেটা সেটের মধ্যে কিছু নির্দিষ্ট মান খোঁজা, যেখানে বাইরের লুপটি বিভিন্ন ডেটা সেকশন নিয়ে কাজ করবে এবং ভিতরের লুপটি প্রতি সেকশনের ভিতরের ডেটা পরীক্ষা করবে।
সারাংশ:
Nested Loops ব্যবহার Batch Script-এ আপনাকে একাধিক স্তরের লুপ তৈরি করতে সহায়তা করে। এটি খুবই উপকারী যখন আপনাকে একই সময়ের মধ্যে একাধিক আউটপুট বা ডেটার উপর কাজ করতে হয়। এর মাধ্যমে আপনি একাধিক মান নিয়ে কাজ করতে পারবেন এবং সহজেই বড় কাজগুলোকে ছোট ছোট টুকরো করে ভাগ করতে পারবেন।
Read more